//未通过
#include <bits/stdc++.h>
using namespace std;

long long gcd(long long n, long long m) {
  return (n % m == 0) ? m : gcd(m, n % m);
} // gcd，不做说明。

void exgcd(long long a, long long b, long long &x, long long &y) {
  if (!b) {
    x = 1;
    y = 0;
    return;
  }
  long long p;
  exgcd(b, a % b, x, y);
  p = x;
  x = y;
  y = p - (a / b) * y;
  return;
} // exgcd，本题核心代码，在上述内容中已做说明 。

int main() {
  int t;
  cin >> t;
  while (t--) {
    long long
        x = 0,
        y = 0, a, b, c, g, xin, yin, xax, yax, npa = 0,
        k; // t,x,y,a,b,c,g同先前描述，xin,yin为x,y的最小正整数解,xax,yax为x,y的最大正整数解，npa为正整数解数。
    cin >> a >> b >> c;

    g = gcd(a, b);
    if (c % g != 0)
      printf("Impossible\n"); // 判断有无整数解。
    else {
      a /= g;
      b /= g;
      c /= g;
      exgcd(a, b, x, y);
      x *= c;
      y *= c; // 求出一组特解。
      for (
          int i = 1; i <= 2;
          i++) // 因为在求解y取得最小正整数解时的k值可能使x的值小于等于0，所以要再求解一遍以求出x的最小正整数解与y的最大正整数解。
        if (x <= 0) {
          k = -(x / b) + 1;
          x += k * b;
          y -= k * a;
          xin = x;
          yax = y;
        } // 求出x取得最小正整数解时的k值，x的最小正整数解与y的最大正整数解。
        else if (y <= 0) {
          k = -(y / a) + 1;
          x -= k * b;
          y += k * a;
          yin = y;
          xax = x;
        } // 求出y取得最小正整数解时的k值，x的最大正整数解与y的最小正整数解。
      if (x > 0 && y > 0) // 判断方程有无正整数解。
      {
        if (x % b != 0) {
          xin = x % b;
          yax = y + a * (x / b);
        } else {
          xin = x % b + b;
          yax = y + a * (x / b - 1);
        }
        if (y % a != 0) {
          yin = y % a;
          xax = x + b * (y / a);
        } else {
          yin = y % a + a;
          xax = x + b * (y / a - 1);
        } // 用于求解x,y均大于等于0时x,y的最小最大正整数解。
        npa = (xax - xin) / b + 1; // 求出正整数解的数量。
      }
      if (!npa)
        printf("%lld %lld\n", xin, yin);
      else
        printf("%lld %lld %lld %lld %lld\n", npa, xin, yin, xax, yax);
      // 输出部分。
    }
  }
  return 0;
}